﻿using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

/// <summary>
/// 单位数据类
/// </summary>
public class DepartmentDB : DataLayer
{
	#region 构造函数
	/// <summary>
	/// 构造函数
	/// </summary>
	/**********************************************************************************************
	 ** 功能描述：	构造函数
	 ** 输入参数：
	 ** 返回值：
	 ** 作者：	Tony Mucor
	 ** 日期：	2013-08-19
	 ** 修改：
	 ** 日期：
	 *********************************************************************************************/
	public DepartmentDB()
	{
		clsDB = new DBOperating();
		clsConfig = new Configuration();

		nIDNumber = 0;
		nStatusNumber = 4;
		strTableName = "Department";
		nColumnNumber = 5;

		arrTableColumnName = new string[nColumnNumber];
		arrTableColumnValue = new string[nColumnNumber];

		arrTableColumnName[0] = "Department_ID";
		arrTableColumnName[1] = "Department_Name";
		arrTableColumnName[2] = "Department_FatherID";
		arrTableColumnName[3] = "Department_Grade";
		arrTableColumnName[4] = "Department_Status";
	}
	#endregion

	#region 查询
	/// <summary>
	/// 根据栏目上级单位ID查询单位
	/// </summary>
	/**********************************************************************************************
	 ** 功能描述：	根据栏目上级单位ID查询单位
	 ** 输入参数：
	 ** 返回值：
	 ** 作者：	Tony Mucor
	 ** 日期：	2013-08-19
	 ** 修改：
	 ** 日期：
	 *********************************************************************************************/
	public DataTable QueryDepartments(int nFatherID)
	{
		string strSQL;

		strSQL = "SELECT * FROM Department WHERE Department_Status = '"+clsConfig.nNormal.ToString()+"' AND Department_FatherID = '" +nFatherID.ToString()+"' ORDER BY Department_Name ASC";

		return QueryToDataTable(strSQL);
	}

	#region 根据单位名称、单位所属的上级单位ID，查询单位
	/// <summary>
	/// 根据单位名称、单位所属的上级单位ID，查询单位
	/// </summary>
	/**********************************************************************************************
	 ** 功能描述：	根据单位名称、单位所属的上级单位ID，查询单位，如果上级单位为-1，则上级单位ID不作为查询条件
	 **		如果单位名称为空，则单位名称不做为查询条件
	 ** 输入参数：
	 ** 返回值：
	 ** 作者：	Tony Mucor
	 ** 日期：	2013-08-21
	 ** 修改：
	 ** 日期：
	 *********************************************************************************************/
	public DataTable QueryDepartments(string strDepartmentName, int nFatherID)
	{
		string strSQL;

		strSQL = "SELECT * FROM Department WHERE Department_Status = '" + clsConfig.nNormal.ToString() + "'";
		if (strDepartmentName != "")
		{
			strSQL = strSQL + " AND Department_Name LIKE '" + strDepartmentName + "'";
		}
		if (nFatherID != clsConfig.nAllDepartment)
		{
			strSQL = strSQL + " AND Department_FatherID = '"+nFatherID.ToString()+"'";
		}
		strSQL = strSQL + " ORDER BY Department_Name ASC";
		return QueryToDataTable(strSQL);
	}
	#endregion

	#endregion
}
